Software components that perform a certain function are known as applications. Applications are widely used in a variety of business processes, each being an execution of one or more Web services according to a description of an active business process. Business process applications are increasingly used in collaborative situations, that is, situations in which one or more applications receive data, such as messages, from another application.
A collaborative application environment typically relies on a precise messaging and transport layer for proper routing, addressing and transport of messages from one application to another. Collaborative business processes, however, tend to require a more sophisticated infrastructure that can execute real-time business logic.
For instance, in a messaging and transport layer, a messaging system (also referred to as a message exchange system) may transport messages as a payload in an envelope such as an extensible markup language (XML) file. The system may access the envelope, analyze the origin or sender of a message, and determine an intended recipient. The messaging and transport layer typically utilizes a database in which to store messages for persistence, at least until processing is complete.
In conventional high throughput messaging systems, the messaging system may receive a high volume of messages that must be processed and then deleted in the same sequence as they were received. The processing time from a message in a messaging system is usually short. After processing, the message can be reorganized (e.g., moved, saved, or deleted). If the input message rate exceeds or otherwise does not match the output message rate, the messaging persistence layer (e.g., database) may overfill. Such an overfill may result in the termination or delay of message processing, thereby affecting a wide variety of applications among an enterprise network.
If a message is to be deleted after processing, with conventional systems, each row in a database is deleted with a single delete. However, this delete operation can be relatively slow and create a rollback segment when a command word or other command instructing the database to save all changes made to the database is received. A delete function then deletes the entry and the rollback segment. This process tends to consume additional processing resources and may also delay messaging processing.